<?php
// L3 MIAGE Nice - Gestion de projets et Analyse des besoins - 2010-2011
// Création d'un site internet de vente de vidéos en ligne
// 
// ajoutFilm.php - Traitement du formulaire d'ajout de films
//    Le résultat de ce script est affiché dans l'iframe en dessous du formulaire d'ajout de films.
//
// Auteur : (groupe 15) Shyn-Yuan CHENG, Abdoul Mazid DIALLO, LAGNEAU Sébastien, NJOTCHA-NJOTCHA Franck-Merlin
//

// Fonction d'autochargement de classes
//
function __autoload($class_name) {
   require_once ('../../includes/classes/class_'.$class_name . '.php');
}

// Inclure les fichiers nécessaires
//
include_once("../config/config.php");
include_once("../../includes/functions_date.php");

// Déclarer les variables
//
$erreurs= array(); //tableau qui stocke les erreurs.
$sortie= NULL;
$chemin_destination= "../../affiches/"; // chemin vers le répertoire contenant toutes les affiches

// Détecter les erreurs de saisie
//
if(!$_POST["titre"]) $erreurs[]= "Veuillez entrer le titre du film !";
if(!$_POST['synopsis']) $erreurs[]= "Veuillez entrer le synopsis du film !";
if(!$_POST['ba']) $erreurs[]= "Veuillez entrer le code Youtube, Dailymotion ou autre de la ba du film !";

if(!$_POST['idReal']) $erreurs[]= "Une erreur s'est produite !";
else if(!$_POST['idProd']) $erreurs[]= "Une erreur s'est produite !";
else if(!$_POST['genre']) $erreurs[]= "Une erreur s'est produite !";

if(!$_POST['dateCine']) $erreurs[]= "Veuillez entrer la date de sortie du film !";
else if(!testDate($_POST['dateCine'])) $erreurs[]= "Veuillez entrer une date au format JJ/MM/AAAA !";

if(isset($_FILES["fichier"]) && $_FILES["fichier"]["error"]!=UPLOAD_ERR_OK) {    // Erreurs d'envoi de l'affiche
   switch($_FILES["fichier"]["error"]){
      case 1: // UPLOAD_ERR_INI_SIZE
         $erreurs[]= "Le fichier d&eacute;passe la limite autoris&eacute;e par le serveur !";
         break;
      case 2: // UPLOAD_ERR_FORM_SIZE
         $erreurs[]= "Le fichier d&eacute;passe la limite autoris&eacute;e dans le formulaire HTML !";
         break;
      case 3: // UPLOAD_ERR_PARTIAL
         $erreurs[]= "L'envoi du fichier a &eacute;t&eacute; interrompu pendant le transfert !";
         break;
      case 4: // UPLOAD_ERR_NO_FILE
         $erreurs[]= "Vous n'avez pas s&eacute;lectionn&eacute; d'affiche !";
         break;
   }
}
else if(file_exists($chemin_destination.$_FILES["fichier"]["name"]))
   $erreurs[]= "Un fichier portant ce nom existe d&eacute;j&agrave; !";
   
// Vérifier la validité de l'extention du fichier (doit être en *.jpg)
//
$extension_upload= strtolower(substr(strrchr($_FILES["fichier"]["name"], "."), 1));
if($extension_upload != "jpg") $erreurs[]= "L'affiche doit-être un .jpg !";


// Traiter le cas où aucune erreur de saisie a été trouvée
//
if(count($erreurs)==0) {
   $titre= addslashes(ucfirst($_POST["titre"]));
   $synopsis= addslashes(ucfirst($_POST['synopsis']));
   $dateCine= convdateMySQL($_POST['dateCine']);
   $affiche= $_FILES["fichier"]["name"];
   $codeAp= addslashes($_POST['ba']);
   $idProd= $_POST['idProd'];
   $idReal= $_POST['idReal'];
   $idGenre= $_POST['genre'];
   
   // Connexion à la bd
   //
   try {
      $db = dbfactory::factory ('mysql');
   } catch (Exception $e) {
      die($e->getmessage());
   }
   
   // Insérer les données
   //
   $sql="SET AUTOCOMMIT=0"; // Désactiver l'autocommit dans MySQL
   $requete= $db->query($sql);
   
   $sql="START TRANSACTION"; // Début de la transaction
   $requete= $db->query($sql);
   
   $sql= "INSERT INTO film (titre, synopsis, dateCine) "; // insertion du film
   $sql.= "VALUES('$titre', '$synopsis', '$dateCine')";
   $requete= $db->query($sql);
   
   $idFilm= mysql_insert_id(); // Récupérer l'identifiant du film
   
   $sql= "INSERT INTO affiche (idFilm, nom) "; // insertion de l'affiche
   $sql.= "VALUES('$idFilm', '$affiche')";
   $requete= $db->query($sql);
   
   $sql= "INSERT INTO apercu (idFilm, codeAp) "; // insertion de la bande-annonce
   $sql.= "VALUES('$idFilm', '$codeAp')";
   $requete= $db->query($sql);
   
   $sql= "INSERT INTO realisateursF "; // insertion du réalisateur du film
   $sql.= "VALUES($idFilm, $idReal)";
   $requete= $db->query($sql);
   
   $sql= "INSERT INTO producteursF "; // insertion du producteur du film
   $sql.= "VALUES($idFilm, $idProd)";
   $requete= $db->query($sql);
   
   $sql= "INSERT INTO genresF "; // insertion du producteur du genre
   $sql.= "VALUES($idFilm, $idGenre)";
   $requete= $db->query($sql);
   
   // Copier l'affiche du répertoire temporaire vers son répertoire définitif, si erreur on tue le script avant le commit dans la BD
   //
   if(!move_uploaded_file($_FILES["fichier"]["tmp_name"], $chemin_destination.$_FILES["fichier"]["name"]))
      die("<p class='erreur'>Erreur d'envoi du fichier ".$affiche."</p>");
      
   $sql="COMMIT"; // COMMIT
   $requete= $db->query($sql);
   
   $sql="SET AUTOCOMMIT=1"; // Réactiver l'autocommit dans MySQL
   $requete= $db->query($sql);
   
   // Indiquer que le script s'est exécuté correctement
   //
   $sortie= "true";
}
else { // Affichage des erreurs
   $sortie= "<p class='erreur'>";
   for($i=0; $i<count($erreurs); $i++) $sortie.= "- ".$erreurs[$i]."<br />";
   $sortie.= "</p>";
}
?>

<!-- Code HTML de la page à renvoyer dans l'iframe --> 
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Upload fichier</title>
<script type="text/javascript">
   window.parent.CS.UploadAjax.callBack("<?php echo addslashes($sortie); ?>")
</script>
</head>
<body>
</body>
</html>
